package com.tengju.payment.domain.model.transfer;

import com.tengju.payment.domain.model.TradeStatus;

import java.util.List;

/**
 * 转账记录查询数仓
 */
public interface TransferRecordRepository {

    /**
     * 业务方流水号查询
     *
     * @param businessNo 业务流水号
     * @return 转账记录
     */
    Transfer findByBusinessNo(BusinessNo businessNo);

    /**
     * 保存转账记录
     */
    TransferId storeTransfer(TransferForm transferForm);

    /**
     * 更新转账信息
     */
    int updateTransfer(TradeStatus beforeTradeStatus, Transfer transfer);

    /**
     * 查找所有指定状态记录
     */
    List<Transfer> findByStatus(TradeStatus tradeStatus);


    /**
     * 业务方流水号查询
     */
    Transfer findByTradeNo(String tradeNo);
}
